<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>History</title>
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../thread.html" title="Chapter 37. Thread 4.8.0">
<link rel="prev" href="build.html" title="Using and building the library">
<link rel="next" href="future.html" title="Future">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
<td align="center"><a href="../../../index.html">Home</a></td>
<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="build.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../thread.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="future.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="thread.changes"></a><a class="link" href="changes.html" title="History">History</a>
</h2></div></div></div>
<h4>
<a name="thread.changes.h0"></a>
      <span class="phrase"><a name="thread.changes.version_4_9_0___boost_1_70"></a></span><a class="link" href="changes.html#thread.changes.version_4_9_0___boost_1_70">Version
      4.9.0 - boost 1.70</a>
    </h4>
<p>
      <span class="bold"><strong>Know Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>
          thread_specific_ptr + dlopen library causes a SIGSEGV.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10964" target="_top">#10964</a>
          future&lt;future&lt;T&gt;&gt;::unwrap().then() Deadlocks
        </li>
</ul></div>
<p>
      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
      Know Bugs</a> to see the current state.
    </p>
<p>
      Please take a look at <a href="http://www.boost.org/development/tests/master/developer/thread.html" target="_top">thread
      master regression test</a> to see the last regression test snapshot.
    </p>
<p>
      <span class="bold"><strong>Fixed Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="https://github.com/boostorg/thread/pull/268" target="_top">https://github.com/boostorg/thread/pull/268</a>
          Add self contained header tests and fix discovered bugs
        </li>
<li class="listitem">
          Improvements support for cygwin platform using the pthread interface.
          <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
                <a href="https://github.com/boostorg/thread/pull/263" target="_top">https://github.com/boostorg/thread/pull/263</a>
                Fix compilation of timed functions on Cygwin $ <a href="https://github.com/boostorg/thread/pull/262" target="_top">https://github.com/boostorg/thread/pull/262</a>
                Fix MinGW warnings about violation of the strict aliasing rules
              </li></ul></div>
        </li>
<li class="listitem">
          <a href="https://github.com/boostorg/thread/pull/260" target="_top">https://github.com/boostorg/thread/pull/260</a>
          Fix "interruption_point" defined twice.
        </li>
<li class="listitem">
          <a href="https://github.com/boostorg/thread/pull/249" target="_top">https://github.com/boostorg/thread/pull/249</a>
          Simplify TSS cleanup routines. Fixes #236
        </li>
</ul></div>
<p>
      <span class="bold"><strong>New Experimental Features:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          Since BOOST_THREAD_VERSION 5, BOOST_THREAD_USES_EXECUTOR is defined by
          default.
        </li>
<li class="listitem">
          <a href="https://github.com/boostorg/thread/pull/266" target="_top">https://github.com/boostorg/thread/pull/266</a>
          Remove linking with Boost.System
        </li>
</ul></div>
<h4>
<a name="thread.changes.h1"></a>
      <span class="phrase"><a name="thread.changes.version_4_8_1___boost_1_67"></a></span><a class="link" href="changes.html#thread.changes.version_4_8_1___boost_1_67">Version
      4.8.1 - boost 1.67</a>
    </h4>
<p>
      <span class="bold"><strong>Know Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>
          thread_specific_ptr + dlopen library causes a SIGSEGV.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10964" target="_top">#10964</a>
          future&lt;future&lt;T&gt;&gt;::unwrap().then() Deadlocks
        </li>
</ul></div>
<p>
      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
      Know Bugs</a> to see the current state.
    </p>
<p>
      Please take a look at <a href="http://www.boost.org/development/tests/master/developer/thread.html" target="_top">thread
      master regression test</a> to see the last regression test snapshot.
    </p>
<p>
      <span class="bold"><strong>Fixed Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="https://github.com/boostorg/thread/issues/162" target="_top">#162</a>
          fix as much time-related issues as possible and improve the QOI
        </li>
<li class="listitem">
          <a href="https://github.com/boostorg/thread/issues/193" target="_top">#193</a>
          future_then unit test contains two different implementations of do_continuation
          function
        </li>
<li class="listitem">
          <a href="https://github.com/boostorg/thread/issues/209" target="_top">#209</a>
          Legal problem with <code class="computeroutput"><span class="identifier">win32</span><span class="special">/</span><span class="identifier">thread_primitives</span><span class="special">.</span><span class="identifier">hpp</span></code>
        </li>
</ul></div>
<h4>
<a name="thread.changes.h2"></a>
      <span class="phrase"><a name="thread.changes.version_4_8_0___boost_1_66"></a></span><a class="link" href="changes.html#thread.changes.version_4_8_0___boost_1_66">Version
      4.8.0 - boost 1.66</a>
    </h4>
<p>
      <span class="bold"><strong>Know Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>
          thread_specific_ptr + dlopen library causes a SIGSEGV.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10964" target="_top">#10964</a>
          future&lt;future&lt;T&gt;&gt;::unwrap().then() Deadlocks
        </li>
</ul></div>
<p>
      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
      Know Bugs</a> to see the current state.
    </p>
<p>
      Please take a look at <a href="http://www.boost.org/development/tests/master/developer/thread.html" target="_top">thread
      master regression test</a> to see the last regression test snapshot.
    </p>
<p>
      <span class="bold"><strong>Fixed Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/12323" target="_top">#12323</a>
          windows - boost/thread/win32/mfc_thread_init.hpp has wrong signature for
          _pRawDllMainOrig
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/12730" target="_top">#12730</a>
          windows - static threads library is incompatible with MSVC 2017 RC
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/12976" target="_top">#12976</a>
          Boost Thread Executors documentation mistakes
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/12949" target="_top">#12949</a>
          using sleep_for in a thread context without including boost/thread/thread.hpp
          yields incorrect behaviour when BOOST_THREAD_HAS_CONDATTR_SET_CLOCK_MONOTONIC
          is defined
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/13019" target="_top">#13019</a>
          ABI compatibility for BOOST_THREAD_PROVIDES_INTERRUPTIONS incomplete
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/13069" target="_top">#13069</a>
          Boost unit test "sync_pq_multi_thread_p_lib.exe" hung in thread
          library
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/13163" target="_top">#13163</a>
          boost::detail::heap_new does not have a variadic variant
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/13226" target="_top">#13226</a>
          getpagesize() is deprecated since 199506L
        </li>
<li class="listitem">
          <a href="https://github.com/boostorg/thread/issues/132" target="_top">#132</a>
          VS 2017.4 Preview deadlocks on Test 10964
        </li>
<li class="listitem">
          <a href="https://github.com/boostorg/thread/issues/133" target="_top">#133</a>
          windows - Spurious timing test failures on windows
        </li>
<li class="listitem">
          <a href="https://github.com/boostorg/thread/issues/134" target="_top">#134</a>
          VS 2017.4 Preview deadlock in sync_pq_multi_thread_p_lib.exe
        </li>
<li class="listitem">
          <a href="https://github.com/boostorg/thread/issues/135" target="_top">#135</a>
          VS 2017.4 Preview test_scheduled_tp_p.exe deadlock
        </li>
<li class="listitem">
          <a href="https://github.com/boostorg/thread/issues/136" target="_top">#136</a>
          VS 2017.4 Preview test_scheduler_p.exe deadlock
        </li>
<li class="listitem">
          <a href="https://github.com/boostorg/thread/issues/137" target="_top">#137</a>
          VS 2017.4 Preview executor_ex.exe deadlock
        </li>
<li class="listitem">
          <a href="https://github.com/boostorg/thread/issues/143" target="_top">#143</a>
          Failures on msvc-12.0
        </li>
<li class="listitem">
          <a href="https://github.com/boostorg/thread/issues/145" target="_top">#145</a>
          Clang build error with BOOST_THREAD_ATTRIBUTE_MAY_ALIAS
        </li>
</ul></div>
<p>
      <span class="bold"><strong>New Experimental Features:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
          <a href="https://github.com/boostorg/thread/issues/116" target="_top">#116</a>
          [Proposal] Add APIs for deferred set_value/exception
        </li></ul></div>
<h4>
<a name="thread.changes.h3"></a>
      <span class="phrase"><a name="thread.changes.version_4_7_5___boost_1_65_1"></a></span><a class="link" href="changes.html#thread.changes.version_4_7_5___boost_1_65_1">Version
      4.7.5 - boost 1.65.1</a>
    </h4>
<p>
      <span class="bold"><strong>Fixed Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
          <a href="https://github.com/boostorg/thread/issues/130" target="_top">#130</a>
          windows: Bug in boost::condition_variable on Windows
        </li></ul></div>
<h4>
<a name="thread.changes.h4"></a>
      <span class="phrase"><a name="thread.changes.version_4_7_4___boost_1_65"></a></span><a class="link" href="changes.html#thread.changes.version_4_7_4___boost_1_65">Version
      4.7.4 - boost 1.65</a>
    </h4>
<p>
      <span class="bold"><strong>Fixed Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6787" target="_top">#6787</a>
          boost::thread::sleep() hangs if system time is rolled back
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/12519" target="_top">#12519</a>
          boost::thread::try_join_for does not return after timeout
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/12874" target="_top">#12874</a>
          future&lt;&gt; extension constructor must be under BOOST_THREAD_PROVIDES_FUTURE_UNWRAP
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/12888" target="_top">#12888</a>
          Linking with boost thread does not work on mingw/gcc 4.4
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/12958" target="_top">#12958</a>
          sync_bounded_queue::wait_pull_front( lve ) might throw
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/13077" target="_top">#13077</a>
          Linking to static 64bit libboost_thread fails DLL initialization
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/13155" target="_top">#13155</a>
          log doesn't build on a system with pthreads
        </li>
<li class="listitem">
          <a href="https://github.com/boostorg/thread/issues/121" target="_top">#121</a>
          on_tls_prepare is broken under VS2017
        </li>
</ul></div>
<h4>
<a name="thread.changes.h5"></a>
      <span class="phrase"><a name="thread.changes.version_4_7_3___boost_1_64"></a></span><a class="link" href="changes.html#thread.changes.version_4_7_3___boost_1_64">Version
      4.7.3 - boost 1.64</a>
    </h4>
<p>
      <span class="bold"><strong>Fixed Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="https://github.com/boostorg/thread/issues/113" target="_top">#113</a>
          Add a Thread template on all the scoped thread and thread guard classes
        </li>
<li class="listitem">
          <a href="https://github.com/boostorg/thread/issues/117" target="_top">#117</a>
          loop_executor should block on it's work_queue instead of polling
        </li>
<li class="listitem">
          <a href="https://github.com/boostorg/thread/issues/119" target="_top">#119</a>
          basic_condition_variable::relocker::~relocker can throw an exception
        </li>
</ul></div>
<h4>
<a name="thread.changes.h6"></a>
      <span class="phrase"><a name="thread.changes.version_4_7_2___boost_1_63"></a></span><a class="link" href="changes.html#thread.changes.version_4_7_2___boost_1_63">Version
      4.7.2 - boost 1.63</a>
    </h4>
<p>
      <span class="bold"><strong>Fixed Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          fix boost::synchronized_value&lt;&gt;::load()
        </li>
<li class="listitem">
          fix relational operators of boost::synchronized_value&lt;&gt;
        </li>
<li class="listitem">
          fix compile failed with boost::user_scheduler
        </li>
<li class="listitem">
          Fix minor possibility of loosing the notify
        </li>
</ul></div>
<h4>
<a name="thread.changes.h7"></a>
      <span class="phrase"><a name="thread.changes.version_4_7_1___boost_1_62"></a></span><a class="link" href="changes.html#thread.changes.version_4_7_1___boost_1_62">Version
      4.7.1 - boost 1.62</a>
    </h4>
<p>
      <span class="bold"><strong>Know Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>
          thread_specific_ptr + dlopen library causes a SIGSEGV.
        </li></ul></div>
<p>
      Please define BOOST_THREAD_PATCH to apply the patch that could unfortunately
      results is a regression as described in <a href="http://svn.boost.org/trac/boost/ticket/12049" target="_top">#12049</a>.
    </p>
<p>
      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
      Know Bugs</a> to see the current state.
    </p>
<p>
      Please take a look at <a href="http://www.boost.org/development/tests/master/developer/thread.html" target="_top">thread
      master regression test</a> to see the last regression test snapshot.
    </p>
<p>
      <span class="bold"><strong>Fixed Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11097" target="_top">#11097</a>
          test_scheduled_tp - ThreadSanitizer: heap-use-after-free
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11951" target="_top">#11951</a>
          Memory leak in boost::when_all
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/12102" target="_top">#12102</a>
          condition_variable_fwd.hpp fails to compile when BOOST_THREAD_PROVIDES_INTERRUPTIONS
          is disabled
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/12120" target="_top">#12120</a>
          Performance improvement in thread/barrier.hpp
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/12146" target="_top">#12146</a>
          make_exceptional_future is not mentioned in the docs
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/12202" target="_top">#12202</a>
          shared_lock should be in shared_mutex header
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/12220" target="_top">#12220</a>
          Memory leak in future::then()
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/12293" target="_top">#12293</a>
          boost::future::then lambda called before future is ready.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/12350" target="_top">#12350</a>
          shared_mutex (pthreads) unlocked too early in unlock_shared()
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/12371" target="_top">#12371</a>
          boost thread/future.hpp fails to build
        </li>
</ul></div>
<p>
      and several PR
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          #88 fix typos in boost::upgrade_lock
        </li>
<li class="listitem">
          #89 fix a bug in upgrade_to_unique_lock&lt;&gt;::operator=()
        </li>
<li class="listitem">
          #90 fix a bug in try_lock_wrapper&lt;&gt;::operator=()
        </li>
<li class="listitem">
          #91 Add shared_lock_guard to the included lock types
        </li>
<li class="listitem">
          #92 Fixed compilation with MSVC-8.
        </li>
<li class="listitem">
          #93 Fix variable shadowing warnings (Clang)
        </li>
<li class="listitem">
          #94 fix bugs in boost::barrier
        </li>
<li class="listitem">
          #95 fix a mistake in boost::completion_latch
        </li>
<li class="listitem">
          #96 rename async_func.hpp to invoker.hpp.
        </li>
<li class="listitem">
          #97 fix a mistake in sync_timed_queue&lt;&gt;::pull_until()
        </li>
</ul></div>
<h4>
<a name="thread.changes.h8"></a>
      <span class="phrase"><a name="thread.changes.version_4_7_0___boost_1_61"></a></span><a class="link" href="changes.html#thread.changes.version_4_7_0___boost_1_61">Version
      4.7.0 - boost 1.61</a>
    </h4>
<p>
      <span class="bold"><strong>Know Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>
          thread_specific_ptr + dlopen library causes a SIGSEGV.
        </li></ul></div>
<p>
      Please define BOOST_THREAD_PATCH to apply the patch that could unfortunately
      results is a regression as described in <a href="http://svn.boost.org/trac/boost/ticket/12049" target="_top">#12049</a>.
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/4833" target="_top">#4833</a>
          MinGW/test_tss_lib: Support of automatic tss cleanup for native threading
          API not available
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8600" target="_top">#8600</a>
          wait_for_any hangs, if called with multiple copies of shared_future referencing
          same task
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9118" target="_top">#9118</a>
          Seg fault on thread join when llvm and libc++ are used
        </li>
</ul></div>
<p>
      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
      Know Bugs</a> to see the current state.
    </p>
<p>
      Please take a look at <a href="http://www.boost.org/development/tests/master/developer/thread.html" target="_top">thread
      trunk regression test</a> to see the last regression test snapshot.
    </p>
<p>
      <span class="bold"><strong>New Experimental Features:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11772" target="_top">#11772</a>
          Add a launch::sync policy
        </li></ul></div>
<p>
      <span class="bold"><strong>Fixed Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11494" target="_top">#11494</a>
          boost::this_thread::yield() is marked as deprecated in the synopsis
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11562" target="_top">#11562</a>
          (condition_variable_any::wait_until + recursive_mutex + steady_clock) timer
          expires after computer time is set forward on Ubuntu 64-bit
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/12013" target="_top">#12013</a>
          F_pass and FArgs_pass tests segfault
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/12036" target="_top">#12036</a>
          boost::physical_concurrency always returns 0 if BOOST_USE_WINAPI_VERSION
          is not defined
        </li>
</ul></div>
<h4>
<a name="thread.changes.h9"></a>
      <span class="phrase"><a name="thread.changes.version_4_6_0___boost_1_60"></a></span><a class="link" href="changes.html#thread.changes.version_4_6_0___boost_1_60">Version
      4.6.0 - boost 1.60</a>
    </h4>
<p>
      <span class="bold"><strong>Know Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/4833" target="_top">#4833</a>
          MinGW/test_tss_lib: Support of automatic tss cleanup for native threading
          API not available
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8600" target="_top">#8600</a>
          wait_for_any hangs, if called with multiple copies of shared_future referencing
          same task
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9118" target="_top">#9118</a>
          Seg fault on thread join when llvm and libc++ are used
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10942" target="_top">#10942</a>
          Boost.Thread fails to build on Cygwin.
        </li>
</ul></div>
<p>
      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
      Know Bugs</a> to see the current state.
    </p>
<p>
      Please take a look at <a href="http://www.boost.org/development/tests/master/developer/thread.html" target="_top">thread
      trunk regression test</a> to see the last regression test snapshot.
    </p>
<p>
      <span class="bold"><strong>New Experimental Features:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11231" target="_top">#11231</a>
          Allow to set continuation future's destructor behavior to non-blocking
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11424" target="_top">#11424</a>
          Provide shared_timed_mutex as an alternative name for shared_mutex and
          deprecate the use of shared_mutex as a timed mutex
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11734" target="_top">#11734</a>
          future::then(Cont) should be able to execute the continuation on undetermined
          thread
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11736" target="_top">#11736</a>
          Allow to use launch::executor on future::then(launch::executor, cont)
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11737" target="_top">#11737</a>
          Add a launch::inherit policy that can be used on ::then() to use the policy
          of the parent future
        </li>
</ul></div>
<p>
      <span class="bold"><strong>Fixed Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6377" target="_top">#6377</a>
          Condition variable blocks when changing time
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6787" target="_top">#6787</a>
          boost::thread::sleep() hangs if system time is rolled back
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7665" target="_top">#7665</a>
          this_thread::sleep_for no longer uses steady_clock in thread
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7720" target="_top">#7720</a>
          exception lock_error while intensive locking/unlocking of mutex
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9309" target="_top">#9309</a>
          test_latch fails often on clang-darwin-tot11
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10788" target="_top">#10788</a>
          GetLogicalProcessor isn't available for Windows platform less or equals
          to 0x0502
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11090" target="_top">#11090</a>
          ex_future_unwrap- ThreadSanitizer: lock-order-inversion (potential deadlock)
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11158" target="_top">#11158</a>
          Pthread thread deadlock when faketime used
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11174" target="_top">#11174</a>
          boost::condition_variable::timed_wait with predicate unexpectedly wakes
          up while should wait infinite
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11185" target="_top">#11185</a>
          Incorrect URL redirection
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11192" target="_top">#11192</a>
          boost::future&lt;&gt;::then() with an executor doesn't compile when the
          callback returns a future
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11250" target="_top">#11250</a>
          future made from make_exceptional fails on assertion in destructor
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11256" target="_top">#11256</a>
          future&lt;&gt;::is_ready() == false in continuation function
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11261" target="_top">#11261</a>
          bad use of scoped threads in basic_thread_pool
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11262" target="_top">#11262</a>
          bad use of direct pointer in shared_state_nullary_task
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11263" target="_top">#11263</a>
          lock already locked lock
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11266" target="_top">#11266</a>
          boost::packaged_task has invalid variadic signature
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11302" target="_top">#11302</a>
          boost thread doesn't build with BOOST_THREAD_PATCH.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11322" target="_top">#11322</a>
          sleep_for() nanoseconds overload will always return too early on windows
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11329" target="_top">#11329</a>
          using declarative for GetProcessHeap, .... fails
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11368" target="_top">#11368</a>
          boost thread's usage of CreateWaitableTimer wakes PC from sleep (doh)
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11377" target="_top">#11377</a>
          Boost condition variable always waits for system clock deadline
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11435" target="_top">#11435</a>
          gcc compiler warning in future.hpp
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11555" target="_top">#11555</a>
          devector.hpp assumes allocator_traits_type is always present
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11562" target="_top">#11562</a>
          (condition_variable_any::wait_until + recursive_mutex + steady_clock) timer
          expires after computer time is set forward on Ubuntu 64-bit
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11672" target="_top">#11672</a>
          Thread: Should use unique_ptr, not auto_ptr
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11688" target="_top">#11688</a>
          thread::try_join_until: Avoid busy wait if system clock changes
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11672" target="_top">#11716</a>
          ::then(f) should inherit the parent Executor
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11795" target="_top">#11795</a>
          Incorrect version specification for documentation of thread destructor
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11796" target="_top">#11796</a>
          Thread move assignment operator, does not detach previous thread data
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11817" target="_top">#11817</a>
          'sync_queue_is_closed' was not declared in boost/thread/executors/thread_executor.hpp
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11818" target="_top">#11818</a>
          future.then will be blocked if promise is set after the invocation of then
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/12049" target="_top">#12049</a>
          Assertion failure from detached threads during shutdown
        </li>
</ul></div>
<h4>
<a name="thread.changes.h10"></a>
      <span class="phrase"><a name="thread.changes.version_4_5_0___boost_1_58"></a></span><a class="link" href="changes.html#thread.changes.version_4_5_0___boost_1_58">Version
      4.5.0 - boost 1.58</a>
    </h4>
<p>
      <span class="bold"><strong>Know Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>
          thread_specific_ptr + dlopen library causes a SIGSEGV.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/4833" target="_top">#4833</a>
          MinGW/test_tss_lib: Support of automatic tss cleanup for native threading
          API not available
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8600" target="_top">#8600</a>
          wait_for_any hangs, if called with multiple copies of shared_future referencing
          same task
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9118" target="_top">#9118</a>
          Seg fault on thread join when llvm and libc++ are used
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9309" target="_top">#9309</a>
          test_latch fails often on clang-darwin-tot11
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9311" target="_top">#9311</a>
          ex_lambda_future fails on msvc-11.0
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10942" target="_top">#10942</a>
          Boost.Thread fails to build on Cygwin.
        </li>
</ul></div>
<p>
      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
      Know Bugs</a> to see the current state.
    </p>
<p>
      Please take a look at <a href="http://www.boost.org/development/tests/master/developer/thread.html" target="_top">thread
      trunk regression test</a> to see the last regression test snapshot.
    </p>
<p>
      <span class="bold"><strong>Sever limitations:</strong></span>
    </p>
<p>
      There are some severe bugs that prevent the use of the library on concrete
      contexts, in particular:
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
          on thread specific storage that prevent the library to be used with dynamic
          libraries ( <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>,
          ),
        </li></ul></div>
<p>
      <span class="bold"><strong>New Experimental Features:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9600" target="_top">#9600</a>
          Async: Add task_region
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10611" target="_top">#10611</a>
          Add emplace promise::set_value and emplace make_ready_future
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10826" target="_top">#10826</a>
          Add scheduled executor operations
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11048" target="_top">#11048</a>
          Add a serial_executor based on continuations
        </li>
</ul></div>
<p>
      <span class="bold"><strong>Fixed Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6787" target="_top">#6787</a>
          boost::thread::sleep() hangs if system time is rolled back
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10734" target="_top">#10734</a>
          Submit method work differently on different executors, some throw exception
          and some silently ignore error (thread_executor and inline_executor)
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10736" target="_top">#10736</a>
          Task exceptions silently ignored. I think std::terminate solution from
          N3785 and std::thread is better choice and more consistent.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10737" target="_top">#10737</a>
          In serial_executor we have infinite wait if task throw exception.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10822" target="_top">#10822</a>
          Boost.Thread fails to compile on Android
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10824" target="_top">#10824</a>
          Boost.Thread 1.57 breaks Windows XP compatibility for SP2 and below.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10963" target="_top">#10963</a>
          future&lt;future&lt;T&gt;&gt;::then Has No Implementation
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10964" target="_top">#10964</a>
          future&lt;future&lt;T&gt;&gt;::unwrap().then() Deadlocks
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10968" target="_top">#10968</a>
          The futures returned by async() and future::then() are not blocking.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10971" target="_top">#10971</a>
          shared_future::get()/get_or() must be const
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10972" target="_top">#10972</a>
          shared_future::then() can be called multiple times.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10979" target="_top">#10979</a>
          Support T&amp; type deduction when the make_ready_future parameter is reference_wrapper&lt;T&gt;
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10996" target="_top">#10996</a>
          Thread physical_concurrency() is failing on Windows
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11035" target="_top">#11035</a>
          BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE not defined for Android
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/11053" target="_top">#11053</a>
          The attached code results in a R6025 - pure virtual function call in run_thread_exit_callbacks
        </li>
</ul></div>
<h4>
<a name="thread.changes.h11"></a>
      <span class="phrase"><a name="thread.changes.version_4_4_0___boost_1_57"></a></span><a class="link" href="changes.html#thread.changes.version_4_4_0___boost_1_57">Version
      4.4.0 - boost 1.57</a>
    </h4>
<p>
      <span class="bold"><strong>Know Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/2442" target="_top">#2442</a>
          Application statically linked with Boost.Thread crashes when Google Desktop
          is installed (Windows XP)
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>
          thread_specific_ptr + dlopen library causes a SIGSEGV.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/4833" target="_top">#4833</a>
          MinGW/test_tss_lib: Support of automatic tss cleanup for native threading
          API not available
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7319" target="_top">#7319</a>
          Take care of c++std-lib-32966 issue
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8600" target="_top">#8600</a>
          wait_for_any hangs, if called with multiple copies of shared_future referencing
          same task
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9118" target="_top">#9118</a>
          Seg fault on thread join when llvm and libc++ are used
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9309" target="_top">#9309</a>
          test_latch fails often on clang-darwin-tot11
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9310" target="_top">#9310</a>
          test_4648_lib fails on clang-darwin-asan11
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9311" target="_top">#9311</a>
          ex_lambda_future fails on msvc-11.0
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10537" target="_top">#10537</a>
          Application crash on throw exception
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10651" target="_top">#10651</a>
          boost::thread leaks memory when using the MinGW compiler
        </li>
</ul></div>
<p>
      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
      Know Bugs</a> to see the current state.
    </p>
<p>
      Please take a look at <a href="http://www.boost.org/development/tests/master/developer/thread.html" target="_top">thread
      trunk regression test</a> to see the last snapshot.
    </p>
<p>
      <span class="bold"><strong>Sever limitations:</strong></span>
    </p>
<p>
      There are some severe bugs that prevent the use of the library on concrete
      contexts, in particular:
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
          on thread specific storage that prevent the library to be used with dynamic
          libraries,
        </li></ul></div>
<p>
      <span class="bold"><strong>New Experimental Features:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6227" target="_top">#6227</a>
          Synchro: Use of variadic templates on Generic Locking Algorithms on compilers
          providing them
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10298" target="_top">#10298</a>
          Synchro: Added queue views.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10300" target="_top">#10300</a>
          Async: Added generic_executor_ref.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10552" target="_top">#10552</a>
          Add make_valid_future
        </li>
</ul></div>
<p>
      <span class="bold"><strong>Fixed Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6782" target="_top">#6782</a>
          call_once uses incorrect barrier intrinsic on Visual Studio
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6787" target="_top">#6787</a>
          boost::thread::sleep() hangs if system time is rolled back
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7665" target="_top">#7665</a>
          this_thread::sleep_for no longer uses steady_clock in thread
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9307" target="_top">#9307</a>
          future::fallback_to assert with ERRORRRRR boost: mutex lock failed in pthread_mutex_lock:
          Invalid argument
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9308" target="_top">#9308</a>
          future::async fails with terminate called throwing an exception when called
          with a lambda - clang-darwin-asan11
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9310" target="_top">#9310</a>
          test_4648_lib fails on clang-darwin-asan11
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9425" target="_top">#9425</a>
          Boost promise &amp; future does not use supplied allocator for value storage
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9558" target="_top">#9558</a>
          future continuations unit test hangs in get()/pthread_cond_wait() on Mac
          10.7/32-bit/x86/darwin-4.2.1
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9787" target="_top">#9787</a>
          [windows] Small duration value passed down to basic_timed_mutex::try_lock_until
          and condition_variable::wait_until can cause infinite or near infinite
          wait for win32
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9880" target="_top">#9880</a>
          [windows] boost::condition_variable.timed_wait() exception if system time
          &lt; 1970
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10159" target="_top">#10159</a>
          GCC 4.4 error sorry, unimplemented
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10196" target="_top">#10196</a>
          thread_specific_ptr does not support void*
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10296" target="_top">#10296</a>
          Boost.Thread 1.56 rc1 does not compile on Mingw
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10297" target="_top">#10297</a>
          Boost.Thread 1.56 rc1 hangs when built with clang on armhf
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10340" target="_top">#10340</a>
          No boost::promise&lt;T&gt;::set_value(const T&amp;) overload present in
          C++03 mode
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10425" target="_top">#10425</a>
          Missing documentation for when_all/when_any.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10426" target="_top">#10426</a>
          Take in account the deferred futures in when_all.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10427" target="_top">#10427</a>
          Take in account the deferred and ready futures in when_any.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10428" target="_top">#10428</a>
          Adapt to new unique_ptr interface in Boost.Move
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10465" target="_top">#10465</a>
          Missing implementation of when_all/when_any when the result is a tuple.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10476" target="_top">#10476</a>
          classes using BOOST_THREAD_MOVABLE_ONLY&lt;T&gt; dont satisfy is_copy_constructible&lt;T&gt;::value
          == false
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10478" target="_top">#10478</a>
          Data race in boost/thread/future.hpp
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10529" target="_top">#10529</a>
          The pthread/condition_variable_any constructor reports incorrect error
          code for pthread_cond_init
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/10563" target="_top">#10563</a>
          shared_future&lt;R&gt;::then should be const
        </li>
</ul></div>
<h4>
<a name="thread.changes.h12"></a>
      <span class="phrase"><a name="thread.changes.version_4_3_0___boost_1_56"></a></span><a class="link" href="changes.html#thread.changes.version_4_3_0___boost_1_56">Version
      4.3.0 - boost 1.56</a>
    </h4>
<p>
      <span class="bold"><strong>Know Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/2442" target="_top">#2442</a>
          Application statically linked with Boost.Thread crashes when Google Desktop
          is installed (Windows XP)
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>
          thread_specific_ptr + dlopen library causes a SIGSEGV.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/4833" target="_top">#4833</a>
          MinGW/test_tss_lib: Support of automatic tss cleanup for native threading
          API not available
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6782" target="_top">#6782</a>
          call_once uses incorrect barrier intrinsic on Visual Studio
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7319" target="_top">#7319</a>
          Take care of c++std-lib-32966 issue
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8600" target="_top">#8600</a>
          wait_for_any hangs, if called with multiple copies of shared_future referencing
          same task
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9307" target="_top">#9307</a>
          future::fallback_to assert with ERRORRRRR boost: mutex lock failed in pthread_mutex_lock:
          Invalid argument
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9308" target="_top">#9308</a>
          future::async fails with terminate called throwing an exception when called
          with a lambda - clang-darwin-asan11
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9310" target="_top">#9310</a>
          test_4648_lib fails on clang-darwin-asan11
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9311" target="_top">#9311</a>
          ex_lambda_future fails on msvc-11.0
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9425" target="_top">#9425</a>
          Boost promise &amp; future does not use supplied allocator for value storage
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9558" target="_top">#9558</a>
          future continuations unit test hangs in get()/pthread_cond_wait() on Mac
          10.7/32-bit/x86/darwin-4.2.1
        </li>
</ul></div>
<p>
      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
      Know Bugs</a> to see the current state.
    </p>
<p>
      Please take a look at <a href="http://www.boost.org/development/tests/master/developer/thread.html" target="_top">thread
      trunk regression test</a> to see the last snapshot.
    </p>
<p>
      <span class="bold"><strong>Sever limitations:</strong></span>
    </p>
<p>
      There are some severe bugs that prevent the use of the library on concrete
      contexts, in particular:
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          on thread specific storage that prevent the library to be used with dynamic
          libraries,
        </li>
<li class="listitem">
          The experimental features of boost::future have some severe holes that
          make the program crash unexpectedly.
        </li>
</ul></div>
<p>
      <span class="bold"><strong>New Experimental Features:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7446" target="_top">#7446</a>
          Async: Add when_any.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7447" target="_top">#7447</a>
          Async: Add when_all.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7448" target="_top">#7448</a>
          Async: Add async taking a scheduler parameter.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8274" target="_top">#8274</a>
          Synchro: Add concurrent queue
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8518" target="_top">#8518</a>
          Synchro: Add a latch class.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8513" target="_top">#8513</a>
          Async: Add a basic thread_pool executor.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8516" target="_top">#8516</a>
          Async: Add future/shared_future::then taking a scheduler as parameter.
        </li>
</ul></div>
<p>
      <span class="bold"><strong>Fixed Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8070" target="_top">#8070</a>
          prefer GetTickCount64 over GetTickCount
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9333" target="_top">#9333</a>
          ex_scoped_thread compile fails on msvc-12.0
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9366" target="_top">#9366</a>
          async(Executor, ...) fails to compile with msvc-10,11,12
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9402" target="_top">#9402</a>
          test_excutor regression on msvc-10,11,12
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9404" target="_top">#9404</a>
          ex_make_future regression error
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9471" target="_top">#9471</a>
          Synchronization documentation nits
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9535" target="_top">#9535</a>
          Missing exception safety might result in crash
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9618" target="_top">#9618</a>
          try_join_for problem: program is not terminate.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9673" target="_top">#9673</a>
          thread compilation with MingW/gcc on Windows gives errors
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9708" target="_top">#9708</a>
          boost::condition_variable::timed_wait unexpectedly wakes up while should
          wait infinite
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9711" target="_top">#9711</a>
          future continuation called twice
        </li>
</ul></div>
<h4>
<a name="thread.changes.h13"></a>
      <span class="phrase"><a name="thread.changes.version_4_2_0___boost_1_55"></a></span><a class="link" href="changes.html#thread.changes.version_4_2_0___boost_1_55">Version
      4.2.0 - boost 1.55</a>
    </h4>
<p>
      <span class="bold"><strong>Know Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/2442" target="_top">#2442</a>
          Application statically linked with Boost.Thread crashes when Google Desktop
          is installed (Windows XP)
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/3926" target="_top">#3926</a>
          thread_specific_ptr + dlopen library causes a SIGSEGV.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/4833" target="_top">#4833</a>
          MinGW/test_tss_lib: Support of automatic tss cleanup for native threading
          API not available
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6782" target="_top">#6782</a>
          call_once uses incorrect barrier intrinsic on Visual Studio
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7319" target="_top">#7319</a>
          Take care of c++std-lib-32966 issue
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8600" target="_top">#8600</a>
          wait_for_any hangs, if called with multiple copies of shared_future referencing
          same task
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9307" target="_top">#9307</a>
          future::fallback_to assert with ERRORRRRR boost: mutex lock failed in pthread_mutex_lock:
          Invalid argument
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9308" target="_top">#9308</a>
          future::async fails with terminate called throwing an exception when called
          with a lambda - clang-darwin-asan11
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9311" target="_top">#9311</a>
          ex_lambda_future fails on msvc-11.0
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9310" target="_top">#9310</a>
          test_4648_lib fails on clang-darwin-asan11
        </li>
</ul></div>
<p>
      Please take a look at <a href="https://svn.boost.org/trac/boost/query?status=assigned&amp;status=new&amp;status=reopened&amp;component=thread&amp;type=!Feature+Requests&amp;col=id&amp;col=summary&amp;order=id" target="_top">thread
      trunk regression test</a> to see the current state.
    </p>
<p>
      <span class="bold"><strong>Sever limitations:</strong></span>
    </p>
<p>
      There are some severe bugs that prevent the use of the library on concrete
      contexts, in particular:
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          on thread specific storage that prevent the library to be used with dynamic
          libraries,
        </li>
<li class="listitem">
          The experimental features of boost::future have some severe holes that
          make the program crash unexpectedly.
        </li>
</ul></div>
<p>
      <span class="bold"><strong>New Features:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8519" target="_top">#8519</a>
          Synchro: Update class barrier with a completion function.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8515" target="_top">#8515</a>
          Async: Add shared_future::then.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8519" target="_top">#8519</a>
          Synchro: Update class barrier with a completion function
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8615" target="_top">#8615</a>
          Async: Replace make_future/make_shared_future by make_ready_future.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8627" target="_top">#8627</a>
          Async: Add future&lt;&gt;::unwrap and unwrapping constructor.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8677" target="_top">#8677</a>
          Async: Add future&lt;&gt;::get_or.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8678" target="_top">#8678</a>
          Async: Add future&lt;&gt;::fallback_to.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8891" target="_top">#8891</a>
          upgrade_to_unique_lock: missing mutex() function.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8955" target="_top">#8955</a>
          Request for more efficient way to get exception_ptr from future.
        </li>
</ul></div>
<p>
      <span class="bold"><strong>Fixed Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7461" target="_top">#7461</a>
          detail::win32::ReleaseSemaphore may be called with count_to_release equal
          to 0
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8070" target="_top">#8070</a>
          prefer GetTickCount64 over GetTickCount
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8768" target="_top">#8768</a>
          win32 condition_variable::wait_until infinite wait in rare cases.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8817" target="_top">#8817</a>
          Boost Thread Windows CE _createthreadex handling breaks mingw w64.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8943" target="_top">#8943</a>
          Failed to compile code using boost::call_once with Intel C++ Composer XE
          2013 on Windows.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8931" target="_top">#8931</a>
          Typos in external_locking reference.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9029" target="_top">#9029</a>
          Misprint in documentation.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9037" target="_top">#9037</a>
          gcc -Wshadow gives warnings in condition_variable{,_fwd}.hpp.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9041" target="_top">#9041</a>
          Boost.Thread DSO's may need to link with Boost.Atomic.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9048" target="_top">#9048</a>
          boost::scoped_thread useless ctor with variadic template arguments.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/9079" target="_top">#9079</a>
          Condition variable will wait forever for some timepoint values (Win).
        </li>
</ul></div>
<h4>
<a name="thread.changes.h14"></a>
      <span class="phrase"><a name="thread.changes.version_4_1_0___boost_1_54"></a></span><a class="link" href="changes.html#thread.changes.version_4_1_0___boost_1_54">Version
      4.1.0 - boost 1.54</a>
    </h4>
<p>
      <span class="bold"><strong>New Features:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7285" target="_top">#7285</a>
          C++11 compliance: Allow to pass movable arguments for call_once.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7445" target="_top">#7445</a>
          Async: Add future&lt;&gt;.then
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7449" target="_top">#7449</a>
          Synchro: Add a synchronized value class
        </li>
</ul></div>
<p>
      <span class="bold"><strong>Fixed Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/4878" target="_top">#4878</a>
          MinGW 4.5.0 undefined reference to bool interruptible_wait(detail::win32::handle
          handle_to_wait_for,detail::t imeout target_time).
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/4882" target="_top">#4882</a>
          Win32 shared_mutex does not handle timeouts correctly.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/5752" target="_top">#5752</a>
          boost::call_once() is unreliable on some platforms
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6652" target="_top">#6652</a>
          Boost.Thread shared_mutex.hpp:50:99: warning: dereferencing type-punned
          pointer will break strict-aliasing rules <span class="strikethrough">Wstrict-aliasing</span>
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6843" target="_top">#6843</a>
          [Intel C++] Compile Errors with '#include &lt;atomic&gt;'
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6966" target="_top">#6966</a>
          future boost::future_category inconsistent dll linkage
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7720" target="_top">#7720</a>
          exception lock_error while intensive locking/unlocking of mutex
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7755" target="_top">#7755</a>
          Thread: deadlock with shared_mutex on Windows
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7980" target="_top">#7980</a>
          Build error: msvc-11.0 and BOOST_THREAD_DONT_USE_DATETIME
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7982" target="_top">#7982</a>
          pthread_delay_np() parm compile error on AIX
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8027" target="_top">#8027</a>
          thread library fails to compile with Visual Studio 2003
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8070" target="_top">#8070</a>
          prefer GetTickCount64 over GetTickCount
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8136" target="_top">#8136</a>
          boost::this_thread::sleep_for() sleeps longer than it should in Windows
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8212" target="_top">#8212</a>
          Boost thread compilation error on Solaris 10
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8237" target="_top">#8237</a>
          fix documentation for 'thread_group'
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8239" target="_top">#8239</a>
          barrier::wait() not marked as interruption_point
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8323" target="_top">#8323</a>
          boost::thread::try_join_for/try_join_until may block indefinitely due to
          a combination of problems in Boost.Thread and Boost.Chrono
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8337" target="_top">#8337</a>
          The internal representation of "std::string(this-&gt;code()-&gt;message())"
          escapes, but is destroyed when it exits scope.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8371" target="_top">#8371</a>
          C++11 once_flag enabled when constexpr is not available
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8422" target="_top">#8422</a>
          Assertion in win32::WaitForSingleObject()
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8443" target="_top">#8443</a>
          Header file inclusion order may cause crashes
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8451" target="_top">#8451</a>
          Missing documented function 'boost::scoped_thread::joinable'
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8458" target="_top">#8458</a>
          -DBOOST_THREAD_DONT_USE_CHRONO in thread.obj.rsp but not explicitly set
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8530" target="_top">#8530</a>
          [Coverity] Unused variable thread_handle, uninitialized variable cond_mutex
          in thread/pthread/thread_data.hpp
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8550" target="_top">#8550</a>
          static linking of Boost.Thread with an MFC-Dll
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8576" target="_top">#8576</a>
          "sur parolle" should be "sur parole".
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8596" target="_top">#8596</a>
          With C++0x enabled, boost::packaged_task stores a reference to function
          objects, instead of a copy.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8626" target="_top">#8626</a>
          Reintroduce BOOST_VERIFY on pthread_mutex_destroy return type
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8645" target="_top">#8645</a>
          Typo in Strict lock definition
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8671" target="_top">#8671</a>
          promise: set_..._at_thread_exit
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8672" target="_top">#8672</a>
          future&lt;&gt;::then(void()) doesn't works
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/8674" target="_top">#8674</a>
          Futures as local named objects can't be returned with implicit move.
        </li>
</ul></div>
<h4>
<a name="thread.changes.h15"></a>
      <span class="phrase"><a name="thread.changes.version_4_0_0___boost_1_53"></a></span><a class="link" href="changes.html#thread.changes.version_4_0_0___boost_1_53">Version
      4.0.0 - boost 1.53</a>
    </h4>
<p>
      <span class="bold"><strong>Deprecated features:</strong></span>
    </p>
<div class="warning"><table border="0" summary="Warning">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../../doc/src/images/warning.png"></td>
<th align="left">Warning</th>
</tr>
<tr><td align="left" valign="top"><p>
        Deprecated features since boost 1.53 will be available only until boost 1.58.
      </p></td></tr>
</table></div>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          C++11 compliance: packaged_task&lt;R&gt; is deprecated, use instead packaged_task&lt;R()&gt;.
          See BOOST_THREAD_PROVIDES_SIGNATURE_PACKAGED_TASK and BOOST_THREAD_DONT_PROVIDE_SIGNATURE_PACKAGED_TASK
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7537" target="_top">#7537</a>
          deprecate Mutex::scoped_lock and scoped_try_lock and boost::condition
        </li>
</ul></div>
<p>
      <span class="bold"><strong>New Features:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6270" target="_top">#6270</a>
          c++11 compliance: Add thread constructor from movable callable and movable
          arguments Provided when BOOST_THREAD_PROVIDES_VARIADIC_THREAD is defined
          (Default value from Boost 1.55): See BOOST_THREAD_PROVIDES_VARIADIC_THREAD
          and BOOST_THREAD_DONT_PROVIDE_VARIADIC_THREAD.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7279" target="_top">#7279</a>
          C++11 compliance: Add noexcept in system related functions
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7280" target="_top">#7280</a>
          C++11 compliance: Add promise::...at_thread_exit functions
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7281" target="_top">#7281</a>
          C++11 compliance: Add ArgTypes to packaged_task template. Provided when
          BOOST_THREAD_PROVIDES_SIGNATURE_PACKAGED_TASK is defined (Default value
          from Boost 1.55). See BOOST_THREAD_PROVIDES_SIGNATURE_PACKAGED_TASK and
          BOOST_THREAD_DONT_PROVIDE_SIGNATURE_PACKAGED_TASK.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7282" target="_top">#7282</a>
          C++11 compliance: Add packaged_task::make_ready_at_thread_exit function
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7285" target="_top">#7285</a>
          C++11 compliance: Allow to pass movable arguments for call_once
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7412" target="_top">#7412</a>
          C++11 compliance: Add async from movable callable and movable arguments
          Provided when BOOST_THREAD_PROVIDES_VARIADIC_THREAD and BOOST_THREAD_PROVIDES_SIGNATURE_PACKAGED_TASK
          are defined (Default value from Boost 1.55): See BOOST_THREAD_PROVIDES_SIGNATURE_PACKAGED_TASK
          and BOOST_THREAD_DONT_PROVIDE_SIGNATURE_PACKAGED_TASK, BOOST_THREAD_PROVIDES_VARIADIC_THREAD
          and BOOST_THREAD_DONT_PROVIDE_VARIADIC_THREAD.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7413" target="_top">#7413</a>
          C++11 compliance: Add async when the launch policy is deferred.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7414" target="_top">#7414</a>
          C++11 compliance: future::get post-condition should be valid()==false.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7422" target="_top">#7422</a>
          Provide a condition variable with zero-overhead performance penality.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7414" target="_top">#7444</a>
          Async: Add make_future/make_shared_future.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7540" target="_top">#7540</a>
          Threads: Add a helper class that join a thread on destruction.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7541" target="_top">#7541</a>
          Threads: Add a thread wrapper class that joins on destruction.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7575" target="_top">#7575</a>
          C++11 compliance: A future created by async should "join" in
          the destructor.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7587" target="_top">#7587</a>
          Synchro: Add strict_lock and nested_strict_lock.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7588" target="_top">#7588</a>
          Synchro: Split the locks.hpp in several files to limit dependencies.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7590" target="_top">#7590</a>
          Synchro: Add lockable concept checkers based on Boost.ConceptCheck.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7591" target="_top">#7591</a>
          Add lockable traits that can be used with enable_if.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7592" target="_top">#7592</a>
          Synchro: Add a null_mutex that is a no-op and that is a model of UpgardeLockable.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7593" target="_top">#7593</a>
          Synchro: Add a externally_locked class.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7590" target="_top">#7594</a>
          Threads: Allow to disable thread interruptions.
        </li>
</ul></div>
<p>
      <span class="bold"><strong>Fixed Bugs:</strong></span>
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/5752" target="_top">#5752</a>
          boost::call_once() is unreliable on some platforms
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7464" target="_top">#7464</a>
          BOOST_TEST(n_alive == 1); fails due to race condition in a regression test
          tool.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7657" target="_top">#7657</a>
          Serious performance and memory consumption hit if condition_variable methods
          condition notify_one or notify_all is used repeatedly.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7665" target="_top">#7665</a>
          this_thread::sleep_for no longer uses steady_clock in thread.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7668" target="_top">#7668</a>
          thread_group::join_all() should check whether its threads are joinable.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7669" target="_top">#7669</a>
          thread_group::join_all() should catch resource_deadlock_would_occur.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7671" target="_top">#7671</a>
          Error including boost/thread.hpp header on iOS.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7672" target="_top">#7672</a>
          lockable_traits.hpp syntax error: "defined" token misspelled.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7798" target="_top">#7798</a>
          boost::future set_wait_callback thread safety issues.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7808" target="_top">#7808</a>
          Incorrect description of effects for this_thread::sleep_for and this_thread::sleep_until.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7812" target="_top">#7812</a>
          Returns: cv_status::no_timeout if the call is returning because the time
          period specified by rel_time has elapsed, cv_status::timeout otherwise.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7874" target="_top">#7874</a>
          compile warning: thread.hpp:342: warning: type attributes are honored only
          at type definition.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7875" target="_top">#7875</a>
          BOOST_THREAD_THROW_IF_PRECONDITION_NOT_SATISFIED should not be enabled
          by default.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7882" target="_top">#7882</a>
          wrong exception text from condition_variable::wait(unique_lock&lt;mutex&gt;&amp;).
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7890" target="_top">#7890</a>
          thread::do_try_join_until() is missing a return type.
        </li>
</ul></div>
<h4>
<a name="thread.changes.h16"></a>
      <span class="phrase"><a name="thread.changes.version_3_1_0___boost_1_52"></a></span><a class="link" href="changes.html#thread.changes.version_3_1_0___boost_1_52">Version
      3.1.0 - boost 1.52</a>
    </h4>
<p>
      Deprecated Features:
    </p>
<p>
      Deprecated features since boost 1.50 available only until boost 1.55:
    </p>
<p>
      These deprecated features will be provided by default up to boost 1.52. If
      you don't want to include the deprecated features you could define BOOST_THREAD_DONT_PROVIDE_DEPRECATED_FEATURES_SINCE_V3_0_0.
      Since 1.53 these features will not be included any more by default. Since this
      version, if you want to include the deprecated features yet you could define
      BOOST_THREAD_PROVIDE_DEPRECATED_FEATURES_SINCE_V3_0_0. These deprecated features
      will be only available until boost 1.55, that is you have yet 1 year to move
      to the new features.
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
          Time related functions don't using the Boost.Chrono library, use the chrono
          overloads instead.
        </li></ul></div>
<p>
      Breaking changes when BOOST_THREAD_VERSION==3 (Default value since Boost 1.53):
    </p>
<p>
      There are some new features which share the same interface but with different
      behavior. These breaking features are provided by default when BOOST_THREAD_VERSION
      is 3, but the user can however choose the version 2 behavior by defining the
      corresponding macro. As for the deprecated features, these broken features
      will be only available until boost 1.55.
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6229" target="_top">#6229</a>
          Rename the unique_future to future following the c++11.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6266" target="_top">#6266</a>
          Breaking change: thread destructor should call terminate if joinable.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6269" target="_top">#6269</a>
          Breaking change: thread move assignment should call terminate if joinable.
        </li>
</ul></div>
<p>
      New Features:
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/2361" target="_top">#2361</a>
          thread_specific_ptr: document nature of the key, complexity and rationale.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/4710" target="_top">#4710</a>
          C++11 compliance: Missing async().
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7283" target="_top">#7283</a>
          C++11 compliance: Add notify_all_at_thread_exit.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7345" target="_top">#7345</a>
          C++11 compliance: Add noexcept to recursive mutex try_lock.
        </li>
</ul></div>
<p>
      Fixed Bugs:
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/2797" target="_top">#2797</a>
          Two problems with thread_specific_ptr.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/5274" target="_top">#5274</a>
          failed to compile future.hpp with stlport 5.1.5 under msvc8.1, because
          of undefined class.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/5431" target="_top">#5431</a>
          compile error in Windows CE 6.0(interlocked).
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/5696" target="_top">#5696</a>
          win32 detail::set_tss_data does nothing when tss_cleanup_function is NULL.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6931" target="_top">#6931</a>
          mutex waits forwever with Intel C++ Compiler XE 12.1.5.344 Build 20120612
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7045" target="_top">#7045</a>
          Thread library does not automatically compile date_time.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7173" target="_top">#7173</a>
          wrong function name interrupt_point().
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7200" target="_top">#7200</a>
          Unable to build boost.thread modularized.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7220" target="_top">#7220</a>
          gcc 4.6.2 warns about inline+dllimport functions.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7238" target="_top">#7238</a>
          this_thread::sleep_for() does not respond to interrupt().
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7245" target="_top">#7245</a>
          Minor typos on documentation related to version 3.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7272" target="_top">#7272</a>
          win32/thread_primitives.hpp: (Unneccessary) Warning.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7284" target="_top">#7284</a>
          Clarify that there is no access priority between lock and shared_lock on
          shared mutex.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7329" target="_top">#7329</a>
          boost/thread/future.hpp does not compile on HPUX.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7336" target="_top">#7336</a>
          BOOST_THREAD_DONT_USE_SYSTEM doesn't work.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7329" target="_top">#7349</a>
          packaged_task holds reference to temporary.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7350" target="_top">#7350</a>
          allocator_destructor does not destroy object
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7360" target="_top">#7360</a>
          Memory leak in pthread implementation of boost::thread_specific_ptr
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7370" target="_top">#7370</a>
          Boost.Thread documentation
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7438" target="_top">#7438</a>
          Segmentation fault in test_once regression test in group.join_all();
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7461" target="_top">#7461</a>
          detail::win32::ReleaseSemaphore may be called with count_to_release equal
          to 0
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7499" target="_top">#7499</a>
          call_once doesn't call even once
        </li>
</ul></div>
<h4>
<a name="thread.changes.h17"></a>
      <span class="phrase"><a name="thread.changes.version_3_0_1___boost_1_51"></a></span><a class="link" href="changes.html#thread.changes.version_3_0_1___boost_1_51">Version
      3.0.1 - boost 1.51</a>
    </h4>
<p>
      Deprecated Features:
    </p>
<p>
      Deprecated features since boost 1.50 available only until boost 1.55:
    </p>
<p>
      These deprecated features will be provided by default up to boost 1.52. If
      you don't want to include the deprecated features you could define BOOST_THREAD_DONT_PROVIDE_DEPRECATED_FEATURES_SINCE_V3_0_0.
      Since 1.53 these features will not be included any more by default. Since this
      version, if you want to include the deprecated features yet you could define
      BOOST_THREAD_PROVIDE_DEPRECATED_FEATURES_SINCE_V3_0_0. These deprecated features
      will be only available until boost 1.55, that is you have 1 year and a half
      to move to the new features.
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
          Time related functions don't using the Boost.Chrono library, use the chrono
          overloads instead.
        </li></ul></div>
<p>
      Breaking changes when BOOST_THREAD_VERSION==3:
    </p>
<p>
      There are some new features which share the same interface but with different
      behavior. These breaking features are provided by default when BOOST_THREAD_VERSION
      is 3, but the user can however choose the version 2 behavior by defining the
      corresponding macro. As for the deprecated features, these broken features
      will be only available until boost 1.55.
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6229" target="_top">#6229</a>
          Rename the unique_future to future following the c++11.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6266" target="_top">#6266</a>
          Breaking change: thread destructor should call terminate if joinable.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6269" target="_top">#6269</a>
          Breaking change: thread move assignment should call terminate if joinable.
        </li>
</ul></div>
<p>
      Fixed Bugs:
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/4258" target="_top">#4258</a>
          Linking with boost thread does not work on mingw/gcc 4.5.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/4885" target="_top">#4885</a>
          Access violation in set_tss_data at process exit due to invalid assumption
          about TlsAlloc.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6931" target="_top">#6931</a>
          mutex waits forwever with Intel Compiler and /debug:parallel
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7044" target="_top">#7044</a>
          boost 1.50.0 header missing.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7052" target="_top">#7052</a>
          Thread: BOOST_THREAD_PROVIDES_DEPRECATED_FEATURES_SINCE_V3_0_0 only masks
          thread::operator==, thread::operator!= forward declarations, not definitions.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7066" target="_top">#7066</a>
          An attempt to fix current_thread_tls_key static initialization order.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7074" target="_top">#7074</a>
          Multiply defined symbol boost::allocator_arg.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7078" target="_top">#7078</a>
          Trivial 64-bit warning fix on Windows for thread attribute stack size
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/7089" target="_top">#7089</a>
          BOOST_THREAD_WAIT_BUG limits functionality without solving anything
        </li>
</ul></div>
<h4>
<a name="thread.changes.h18"></a>
      <span class="phrase"><a name="thread.changes.version_3_0_0___boost_1_50"></a></span><a class="link" href="changes.html#thread.changes.version_3_0_0___boost_1_50">Version
      3.0.0 - boost 1.50</a>
    </h4>
<p>
      Breaking changes when BOOST_THREAD_VERSION==3:
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6229" target="_top">#6229</a>
          Breaking change: Rename the unique_future to future following the c++11.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6266" target="_top">#6266</a>
          Breaking change: thread destructor should call terminate if joinable.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6269" target="_top">#6269</a>
          Breaking change: thread move assignment should call terminate if joinable.
        </li>
</ul></div>
<p>
      New Features:
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/1850" target="_top">#1850</a>
          Request for unlock_guard to compliment lock_guard.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/2637" target="_top">#2637</a>
          Request for shared_mutex duration timed_lock and timed_lock_shared.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/2741" target="_top">#2741</a>
          Proposal to manage portable and non portable thread attributes.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/3567" target="_top">#3567</a>
          Request for shared_lock_guard.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6194" target="_top">#6194</a>
          Adapt to Boost.Move.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6195" target="_top">#6195</a>
          c++11 compliance: Provide the standard time related interface using Boost.Chrono.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6217" target="_top">#6217</a>
          Enhance Boost.Thread shared mutex interface following Howard Hinnant proposal.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6224" target="_top">#6224</a>
          c++11 compliance: Add the use of standard noexcept on compilers supporting
          them.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6225" target="_top">#6225</a>
          Add the use of standard =delete defaulted operations on compilers supporting
          them.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6226" target="_top">#6226</a>
          c++11 compliance: Add explicit bool conversion from locks.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6228" target="_top">#6228</a>
          Add promise constructor with allocator following the standard c++11.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6230" target="_top">#6230</a>
          c++11 compliance: Follows the exception reporting mechanism as defined
          in the c++11.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6231" target="_top">#6231</a>
          Add BasicLockable requirements in the documentation to follow c++11.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6272" target="_top">#6272</a>
          c++11 compliance: Add thread::id hash specialization.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6273" target="_top">#6273</a>
          c++11 compliance: Add cv_status enum class and use it on the conditions
          wait functions.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6342" target="_top">#6342</a>
          c++11 compliance: Adapt the one_flag to the c++11 interface.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6671" target="_top">#6671</a>
          upgrade_lock: missing mutex and release functions.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6672" target="_top">#6672</a>
          upgrade_lock:: missing constructors from time related types.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6675" target="_top">#6675</a>
          upgrade_lock:: missing non-member swap.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6676" target="_top">#6676</a>
          lock conversion should be explicit.
        </li>
<li class="listitem">
          Added missing packaged_task::result_type and packaged_task:: constructor
          with allocator.
        </li>
<li class="listitem">
          Added packaged_task::reset()
        </li>
</ul></div>
<p>
      Fixed Bugs:
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/2380" target="_top">#2380</a>
          boost::move from lvalue does not work with gcc.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/2430" target="_top">#2430</a>
          shared_mutex for win32 doesn't have timed_lock_upgrade.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/2575" target="_top">#2575</a>
          Bug- Boost 1.36.0 on Itanium platform.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/3160" target="_top">#3160</a>
          Duplicate tutorial code in boost::thread.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/4345" target="_top">#4345</a>
          thread::id and joining problem with cascade of threads.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/4521" target="_top">#4521</a>
          Error using boost::move on packaged_task (MSVC 10).
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/4711" target="_top">#4711</a>
          Must use implementation details to return move-only types.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/4921" target="_top">#4921</a>
          BOOST_THREAD_USE_DLL and BOOST_THREAD_USE_LIB are crucial and need to be
          documented.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/5013" target="_top">#5013</a>
          documentation: boost::thread: pthreas_exit causes terminate().
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/5173" target="_top">#5173</a>
          boost::this_thread::get_id is very slow.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/5351" target="_top">#5351</a>
          interrupt a future get boost::unknown_exception.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/5516" target="_top">#5516</a>
          Upgrade lock is not acquired when previous upgrade lock releases if another
          read lock is present.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/5990" target="_top">#5990</a>
          shared_future&lt;T&gt;::get() has wrong return type.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6174" target="_top">#6174</a>
          packaged_task doesn't correctly handle moving results.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6222" target="_top">#6222</a>
          Compile error with SunStudio: unique_future move.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6354" target="_top">#6354</a>
          PGI: Compiler threading support is not turned on.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6673" target="_top">#6673</a>
          shared_lock: move assign doesn't works with c++11.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6674" target="_top">#6674</a>
          shared_mutex: try_lock_upgrade_until doesn't works.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6908" target="_top">#6908</a>
          Compile error due to unprotected definitions of _WIN32_WINNT and WINVER.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6940" target="_top">#6940</a>
          TIME_UTC is a macro in C11.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6959" target="_top">#6959</a>
          call of abs is ambiguous.
        </li>
<li class="listitem">
          Fix issue signaled on the ML with task_object(task_object const&amp;) in
          presence of task_object(task_object &amp;&amp;)
        </li>
</ul></div>
<h4>
<a name="thread.changes.h19"></a>
      <span class="phrase"><a name="thread.changes.version_2_1_1___boost_1_49"></a></span><a class="link" href="changes.html#thread.changes.version_2_1_1___boost_1_49">Version
      2.1.1 - boost 1.49</a>
    </h4>
<p>
      Fixed Bugs:
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/2309" target="_top">#2309</a>
          Lack of g++ symbol visibility support in Boost.Thread.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/2639" target="_top">#2639</a>
          documentation should be extended(defer_lock, try_to_lock, ...).
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/3639" target="_top">#3639</a>
          Boost.Thread doesn't build with Sun-5.9 on Linux.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/3762" target="_top">#3762</a>
          Thread can't be compiled with winscw (Codewarrior by Nokia).
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/3885" target="_top">#3885</a>
          document about mix usage of boost.thread and native thread api.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/3975" target="_top">#3975</a>
          Incorrect precondition for promise::set_wait_callback().
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/4048" target="_top">#4048</a>
          thread::id formatting involves locale
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/4315" target="_top">#4315</a>
          gcc 4.4 Warning: inline ... declared as dllimport: attribute ignored.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/4480" target="_top">#4480</a>
          OpenVMS patches for compiler issues workarounds.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/4819" target="_top">#4819</a>
          boost.thread's documentation misprints.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/5423" target="_top">#5423</a>
          thread issues with C++0x.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/5617" target="_top">#5617</a>
          boost::thread::id copy ctor.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/5739" target="_top">#5739</a>
          set-but-not-used warnings with gcc-4.6.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/5826" target="_top">#5826</a>
          threads.cpp: resource leak on threads creation failure.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/5839" target="_top">#5839</a>
          thread.cpp: ThreadProxy leaks on exceptions.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/5859" target="_top">#5859</a>
          win32 shared_mutex constructor leaks on exceptions.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6100" target="_top">#6100</a>
          Compute hardware_concurrency() using get_nprocs() on GLIBC systems.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6168" target="_top">#6168</a>
          recursive_mutex is using wrong config symbol (possible typo).
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6175" target="_top">#6175</a>
          Compile error with SunStudio.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6200" target="_top">#6200</a>
          patch to have condition_variable and mutex error better handle EINTR.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6207" target="_top">#6207</a>
          shared_lock swap compiler error on clang 3.0 c++11.
        </li>
<li class="listitem">
          <a href="http://svn.boost.org/trac/boost/ticket/6208" target="_top">#6208</a>
          try_lock_wrapper swap compiler error on clang 3.0 c++11.
        </li>
</ul></div>
<h4>
<a name="thread.changes.h20"></a>
      <span class="phrase"><a name="thread.changes.version_2_1_0___changes_since_boost_1_40"></a></span><a class="link" href="changes.html#thread.changes.version_2_1_0___changes_since_boost_1_40">Version 2.1.0
      - Changes since boost 1.40</a>
    </h4>
<p>
      The 1.41.0 release of Boost adds futures to the thread library. There are also
      a few minor changes.
    </p>
<h4>
<a name="thread.changes.h21"></a>
      <span class="phrase"><a name="thread.changes.changes_since_boost_1_35"></a></span><a class="link" href="changes.html#thread.changes.changes_since_boost_1_35">Changes
      since boost 1.35</a>
    </h4>
<p>
      The 1.36.0 release of Boost includes a few new features in the thread library:
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          New generic <a class="link" href="synchronization.html#thread.synchronization.lock_functions.lock_multiple" title="Non-member function lock(Lockable1,Lockable2,...)"><code class="computeroutput"><span class="identifier">lock</span><span class="special">()</span></code></a>
          and <a class="link" href="synchronization.html#thread.synchronization.lock_functions.try_lock_multiple" title="Non-member function try_lock(Lockable1,Lockable2,...)"><code class="computeroutput"><span class="identifier">try_lock</span><span class="special">()</span></code></a>
          functions for locking multiple mutexes at once.
        </li>
<li class="listitem">
          Rvalue reference support for move semantics where the compilers supports
          it.
        </li>
<li class="listitem">
          A few bugs fixed and missing functions added (including the serious win32
          condition variable bug).
        </li>
<li class="listitem">
          <code class="computeroutput"><span class="identifier">scoped_try_lock</span></code> types are
          now backwards-compatible with Boost 1.34.0 and previous releases.
        </li>
<li class="listitem">
          Support for passing function arguments to the thread function by supplying
          additional arguments to the <a class="link" href="thread_management.html#thread.thread_management.thread" title="Class thread"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code></a> constructor.
        </li>
<li class="listitem">
          Backwards-compatibility overloads added for <code class="computeroutput"><span class="identifier">timed_lock</span></code>
          and <code class="computeroutput"><span class="identifier">timed_wait</span></code> functions
          to allow use of <code class="computeroutput"><span class="identifier">xtime</span></code> for
          timeouts.
        </li>
</ul></div>
<h4>
<a name="thread.changes.h22"></a>
      <span class="phrase"><a name="thread.changes.version_2_0_0___changes_since_boost_1_34"></a></span><a class="link" href="changes.html#thread.changes.version_2_0_0___changes_since_boost_1_34">Version 2.0.0
      - Changes since boost 1.34</a>
    </h4>
<p>
      Almost every line of code in <span class="bold"><strong>Boost.Thread</strong></span>
      has been changed since the 1.34 release of boost. However, most of the interface
      changes have been extensions, so the new code is largely backwards-compatible
      with the old code. The new features and breaking changes are described below.
    </p>
<h4>
<a name="thread.changes.h23"></a>
      <span class="phrase"><a name="thread.changes.new_features"></a></span><a class="link" href="changes.html#thread.changes.new_features">New
      Features</a>
    </h4>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          Instances of <a class="link" href="thread_management.html#thread.thread_management.thread" title="Class thread"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code></a> and of the various lock
          types are now movable.
        </li>
<li class="listitem">
          Threads can be interrupted at <a class="link" href="thread_management.html#interruption_points"><span class="emphasis"><em>interruption
          points</em></span></a>.
        </li>
<li class="listitem">
          Condition variables can now be used with any type that implements the
          <a class="link" href="synchronization.html#thread.synchronization.mutex_concepts.lockable" title="Lockable Concept"><code class="computeroutput"><span class="identifier">Lockable</span></code> concept</a>, through the
          use of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition_variable_any</span></code> (<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition</span></code> is a <code class="computeroutput"><span class="keyword">typedef</span></code>
          to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition_variable_any</span></code>, provided for
          backwards compatibility). <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition_variable</span></code>
          is provided as an optimization, and will only work with <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique_lock</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">&gt;</span></code> (<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">::</span><span class="identifier">scoped_lock</span></code>).
        </li>
<li class="listitem">
          Thread IDs are separated from <a class="link" href="thread_management.html#thread.thread_management.thread" title="Class thread"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code></a>, so a thread can obtain
          it's own ID (using <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">get_id</span><span class="special">()</span></code>), and IDs can be used as keys in associative
          containers, as they have the full set of comparison operators.
        </li>
<li class="listitem">
          Timeouts are now implemented using the Boost DateTime library, through
          a typedef <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">system_time</span></code> for absolute timeouts, and
          with support for relative timeouts in many cases. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">xtime</span></code>
          is supported for backwards compatibility only.
        </li>
<li class="listitem">
          Locks are implemented as publicly accessible templates <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">lock_guard</span></code>,
          <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique_lock</span></code>, <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_lock</span></code>,
          and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">upgrade_lock</span></code>, which are templated on
          the type of the mutex. The <a class="link" href="synchronization.html#thread.synchronization.mutex_concepts.lockable" title="Lockable Concept"><code class="computeroutput"><span class="identifier">Lockable</span></code> concept</a> has been extended
          to include publicly available <a class="link" href="synchronization.html#thread.synchronization.mutex_concepts.basic_lockable.lock" title="m.lock();"><code class="computeroutput"><span class="identifier">lock</span><span class="special">()</span></code></a>
          and <a class="link" href="synchronization.html#thread.synchronization.mutex_concepts.basic_lockable.unlock" title="m.unlock();"><code class="computeroutput"><span class="identifier">unlock</span><span class="special">()</span></code></a>
          member functions, which are used by the lock types.
        </li>
</ul></div>
<h4>
<a name="thread.changes.h24"></a>
      <span class="phrase"><a name="thread.changes.breaking_changes"></a></span><a class="link" href="changes.html#thread.changes.breaking_changes">Breaking
      Changes</a>
    </h4>
<p>
      The list below should cover all changes to the public interface which break
      backwards compatibility.
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
          <a class="link" href="synchronization.html#thread.synchronization.mutex_types.try_mutex" title="Typedef try_mutex"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">try_mutex</span></code></a> has been removed, and
          the functionality subsumed into <a class="link" href="synchronization.html#thread.synchronization.mutex_types.mutex" title="Class mutex"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span></code></a>. <a class="link" href="synchronization.html#thread.synchronization.mutex_types.try_mutex" title="Typedef try_mutex"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">try_mutex</span></code></a> is left as a <code class="computeroutput"><span class="keyword">typedef</span></code>, but is no longer a separate class.
        </li>
<li class="listitem">
          <a class="link" href="synchronization.html#thread.synchronization.mutex_types.recursive_try_mutex" title="Typedef recursive_try_mutex"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">recursive_try_mutex</span></code></a> has been removed,
          and the functionality subsumed into <a class="link" href="synchronization.html#thread.synchronization.mutex_types.recursive_mutex" title="Class recursive_mutex"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">recursive_mutex</span></code></a>. <a class="link" href="synchronization.html#thread.synchronization.mutex_types.recursive_try_mutex" title="Typedef recursive_try_mutex"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">recursive_try_mutex</span></code></a> is left as
          a <code class="computeroutput"><span class="keyword">typedef</span></code>, but is no longer
          a separate class.
        </li>
<li class="listitem">
          <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">lock_ops</span></code> has been removed. Code that
          relies on the <code class="computeroutput"><span class="identifier">lock_ops</span></code>
          implementation detail will no longer work, as this has been removed, as
          it is no longer necessary now that mutex types now have public <a class="link" href="synchronization.html#thread.synchronization.mutex_concepts.basic_lockable.lock" title="m.lock();"><code class="computeroutput"><span class="identifier">lock</span><span class="special">()</span></code></a>
          and <a class="link" href="synchronization.html#thread.synchronization.mutex_concepts.basic_lockable.unlock" title="m.unlock();"><code class="computeroutput"><span class="identifier">unlock</span><span class="special">()</span></code></a>
          member functions.
        </li>
<li class="listitem">
          <code class="computeroutput"><span class="identifier">scoped_lock</span></code> constructors
          with a second parameter of type <code class="computeroutput"><span class="keyword">bool</span></code>
          are no longer provided. With previous boost releases,
<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">::</span><span class="identifier">scoped_lock</span> <span class="identifier">some_lock</span><span class="special">(</span><span class="identifier">some_mutex</span><span class="special">,</span><span class="keyword">false</span><span class="special">);</span></pre>
          could be used to create a lock object that was associated with a mutex,
          but did not lock it on construction. This facility has now been replaced
          with the constructor that takes a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">defer_lock_type</span></code>
          as the second parameter:
<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">::</span><span class="identifier">scoped_lock</span> <span class="identifier">some_lock</span><span class="special">(</span><span class="identifier">some_mutex</span><span class="special">,</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">defer_lock</span><span class="special">);</span></pre>
        </li>
<li class="listitem">
          The <code class="computeroutput"><span class="identifier">locked</span><span class="special">()</span></code>
          member function of the <code class="computeroutput"><span class="identifier">scoped_lock</span></code>
          types has been renamed to <a class="link" href="synchronization.html#thread.synchronization.locks.unique_lock.owns_lock" title="bool owns_lock() const"><code class="computeroutput"><span class="identifier">owns_lock</span><span class="special">()</span></code></a>.
        </li>
<li class="listitem">
          You can no longer obtain a <a class="link" href="thread_management.html#thread.thread_management.thread" title="Class thread"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code></a> instance representing the
          current thread: a default-constructed <a class="link" href="thread_management.html#thread.thread_management.thread" title="Class thread"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span></code></a> object is not associated
          with any thread. The only use for such a thread object was to support the
          comparison operators: this functionality has been moved to <a class="link" href="thread_management.html#thread.thread_management.thread.id" title="Class boost::thread::id"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">id</span></code></a>.
        </li>
<li class="listitem">
          The broken <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">read_write_mutex</span></code> has been replaced with
          <a class="link" href="synchronization.html#thread.synchronization.mutex_types.shared_mutex" title="Class shared_mutex -- C++14"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_mutex</span></code></a>.
        </li>
<li class="listitem">
          <a class="link" href="synchronization.html#thread.synchronization.mutex_types.mutex" title="Class mutex"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span></code></a> is now never recursive.
          For Boost releases prior to 1.35 <a class="link" href="synchronization.html#thread.synchronization.mutex_types.mutex" title="Class mutex"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span></code></a> was recursive on Windows
          and not on POSIX platforms.
        </li>
<li class="listitem">
          When using a <a class="link" href="synchronization.html#thread.synchronization.mutex_types.recursive_mutex" title="Class recursive_mutex"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">recursive_mutex</span></code></a> with a call to
          <a class="link" href="synchronization.html#thread.synchronization.condvar_ref.condition_variable_any.wait" title="template&lt;typename lock_type&gt; void wait(lock_type&amp; lock)"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition_variable_any</span><span class="special">::</span><span class="identifier">wait</span><span class="special">()</span></code></a>,
          the mutex is only unlocked one level, and not completely. This prior behaviour
          was not guaranteed and did not feature in the tests.
        </li>
</ul></div>
</div>
<div class="copyright-footer">Copyright © 2007 -11 Anthony Williams<br>Copyright © 2011 -17 Vicente J. Botet Escriba<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="build.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../thread.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="future.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
